home *** CD-ROM | disk | FTP | other *** search
- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
- ┃ ASK3対応 アクセサリシリーズ7 ┃
- ┃ 「ASKDates」 ┃
- ┃ Copyright (C) 1998 by AIG-Soft ┃
- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
- ┃ 歴史・・・というより日記かも(^^;) ┃
- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
-
- 1998/07/25
- ふと思い付いて日付入力と時刻入力をASKAccに付けようと思う。
-
- さらに、西暦-元号変換があると便利なので、それも入れよう。
- あ~、履歴書を書いている時に入れれば楽出来たのに(^_^)。
-
- 1998/07/27
- 気力さえ充実してれば半日で出来るものを、
- 最近夏ばて気味、どころか完全にばててるので3日もかかった。
- 正味プログラムを組んだのは1日だけだが。
- CRTに向かうとどうにもやる気がなくなる。
- こういう時はノートPC(DynaBook EZ465...純粋なDOS V5マシンだ)で
- ソース編集するとなぜか捗る。やはり電磁波が無いせいか?
- 私のような使い方の人間に、WindowsノートPCなんて無用だ。
-
- ここからハンドコンパイル開始。
-
- 1998/07/28 昼
- 自転車で30キロ程走ってたら夕立にあってしまった。
- 目に見える範囲で落雷が数回+バケツをひっくり返したような土砂降りだった。
- 幸い、近くにあった地下道で雨宿りが出来たので、そんなには濡れてない。
- しかし、一日2回も土砂降りがあるとは、不覚。
-
- 1998/07/28 夜
- codeA.sysへのFPコール追加の話が満開ネットである。
- そこでも書いたけど、ASKのFPコールは必要十分ではない。
- 特に内部状態取得/設定のためのコールが足りていない。
- そのあたりをぜひ、追加して欲しい。
- それと後で書くやつも1つ宜しく(^_^)/。
-
- 1998/07/29
- ハンドコンパイル完了。
-
- 元号を正式名称での入力にも対応させる。漢字2文字=32ビットで処理出来るから楽。
- 元号に明治より前を入れてないけどいいよね?少なくとも私の回りには明治より前のものは
- 存在しないので対応しない(明治の物はある。田舎の家も明治の作りだし)。
- 歴史を勉強していている人は自分で追加しよう。
-
- 起動キーはOPT.1+記号入力。
- あれ?SuperED上で使えんじゃないか?
- ・・・
- SuperEDではOPT.1キーをシフトキーとして"内部"で処理してしまうため、
- ASKに渡されないようである。このためOPT.1を使ったものは起動・操作出来なくなる。
- SuperEDを不対応にするのは余りに問題がある過ぎるので、起動キーを変える。
-
- 最初30マシンで開発して、00マシンでこの現象を見つけたから、00マシンの
- 何かの常駐物との相性かと思って、随分と調べるのに時間を使ってしまった。
- SuperEDのOPT.1を常に乗っ取るというのはいかんよなぁ。
-
- 今まで作ったものの中では、DicBushuの画数ジャンプがあるので、これには
- .docに注意書きを入れることにする(これは+SHIFTでも操作可能なので操作キーは変えない)。
-
- 1998/07/30 V1.0
- 起動キーをCTRL+記号入力に変更して完成。
- しかし、この先、もう起動キーを思い付けないかも。
-
- 1998/07/31
- 田舎へ帰る。
-
- 1998/08/11
- 10日間の田舎帰省から戻る。
-
- で、ASKDatesの感想をいただいてたので感激。
- けっこういい加減に作ったプログラムだから、誰も使わないだろうと思っていただけに、
- 感激もひとしおであった。
- その中に「フォーマットを外部で指定したい」という要望も有ったので実装を考えてみる。
- けっこう難しそうなので、取り合えずは同じく感想をもらったASKCodesの要望実現の方を
- 優先する。
-
- 1998/08/15
- ふと良い方法を思い付いてC版でテスト。うまくいく。
- が、アセンブラーレベルでの修正はけっこう大規模になるので時間がかかりそう。
- DicExの処理と似ているのでそこから借りてくる・・・あっ、DicExにバグ発見(^_^;)。
-
- 1998/08/16
- ハンドコンパイルも何とか終わったが、謎のバグで完全暴走する。
- DicExのバグをまた発見。いかん、メモリー確保/解放関係がむちゃくちゃだぞ。
-
- 1998/08/17
- 再就職先へ行き始める。
- ・・・う~ん、3ヶ月半ぶりの社会復帰は堪えるぜ(^_^;)
- これからは今までのように時間は取れなくなるので、家に帰ってからのわずかな時間に
- 開発をするしかない。
-
- 1998/08/18
- 朝起きた時に急に謎のバグの原因を悟る(^_^;)。
- たった1行の抜けによるバグであった。
-
- 大幅に内部処理を変えたにもかかわらず、常駐サイズが(フォーマットファイル分を除いて)
- ほとんど変わらないというのは東洋の神秘かもしれない。
-
- フォーマットをフリーにすると、全角出力の時の変換に問題が出るなぁ。
- 全角化を強化するが、基本的にはそのまま。
- あっ、バグみっけ。
- 「時刻が9時以下の時に半角出力すると、10の位がスペースになっている」
- 全角化の中で' '->'0'していた処理を半角時にも通る処理にしただけ。
-
- フォーマットを変えるごとに秒が変わる?
- V1もそうだったか。
- ちょっといけないので、起動ごとに1回だけ読み出すように変更する。
- あれ、日付の出力がおかしくなってる。なぜ?
-
- 1998/08/19
- 会社で歓迎会をやってくれるというので行く・・・もう二度と会社で飲みにはいかんぞ!(T_T)
- 空気は綺麗に、酒はしんみり飲むのが好き。
- 私には社会適合性がないのかもしれない。
- ・・・それはともかく・・・
- 最後まで残っていたバグが取れたので本体完成。
- 後はフォーマットファイルを作るプログラムを書かなければ。
- (今まではバイナリーエディターで直接ファイルを作ってた。)
-
- 1998/08/21 V2.0
- 何とかフォーマットコンバーターも完成。
-
- 1998/08/24 V2.01
- ぷにぐらま~ずまにゅある(立花えり子氏)のFPコールの分を読んでいて、
- いいルーチン(半角→全角変換)を発見したので使うことにする。
- これで少しだけプログラムサイズが小さくなるはずだ。
-
- 同じく変更したASKAccは500バイトもサイズが減ったが、こちらはたった50
- バイトである。この差は、ASKAccで使った全角→半角はIOCSに存在しないため
- 自前で処理してからであり、ASKDatesで使った半角→全角はIOCSに存在したからである。
- 何で一方だけ存在するのかは解らないが、FPコールの抜けといいこれといい、
- 手抜きなところがSHARPなのかもしれない。
-
- どちらもFPコールなのでASKが存在しない状態では動かないが、
- アクセサリが動作する状態では、当然ASKは存在するので問題無い。
-
- ・・・いつものことだけど、プログラムとは関係無い話をたくさん書いて
- アーカイブのサイズを大きくしてしまうというのは、ひょっとするといけないことなのかも。
- まぁ、今は昔と違って通信速度も速いので、少し位(少しか?^^;)サイズが大きくなっても
- いいよね!?それともこんなものいらない?
-
- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
- ┃ 技術的な話 (プログラム内部に興味の無い人は飛ばそう!) ┃
- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
-
- ASKとのやりとりに使われるcbuf。
- 起動時に、変換ラインの内容をコピーしてくるのだが、以後はCACI_ENDで終了するまでは
- 一切変更されない。プログラム中で書き替えても、そのまま記録されている。
-
- これが何を意味するかというと、変換ラインに何か入っているかどうかで動作を分ける場合、
- cbuf[0]==0だけで処理すると、だめなのである。
- なぜなら、アクセサリの呼び出しは一旦起動されると全てのキー入力後毎に起こるからである。
- C版のDates()の処理の中で、年号変換の起動判定部分やエラーが起こった時にcbuf[0]=0と
- わざと代入しているのはそのためである。
-
- また、cbufを書き替えても変換ラインそのものは変化しない。
- kbufはアクセサリが有効な内は変換ラインの内容になるが、CACI_ENDで終わった後の
- 変換ラインの内容を変化させる方法はない。
- だから、ASKAccの再変換のようにKSD等の力を借りる必要がある。
-
- FDSさん、codeA.sysにそういうファンクション付けません?(^_^;)
- 変換ライン内容を変更出来るFPコール。
-
- ・・・常駐サイズとSETBLOCKサイズ・・・
-
- 何か、この2つのサイズをごっちゃにとらえていたようで、DicExは間違ってた。
- このプログラムのバージョンアップに合わせて修正したけど。
- 他のプログラムはあってた。
-
- で、2つの関係。
-
- 常駐サイズ=プログラムサイズのみで良い
- KEEP_END-KEEP_START
-
- SETBLOCKのサイズ
- プログラムのサイズ+プロセス管理ポインタ分のサイズ
- add.l #PSPSIZ-MPSIZ,d0
-
- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
- ┃ あとがき ┃
- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
-
- 最初はASCAccに入れるつもりだったんだけど、予想以上にものが大きくなったので、
- 分離してASKDatesになりましたとさ。
-
- 単独のプログラムとして考えれば、至極簡単なプログラムだけど、
- アクセサリにすることでそれなりに意味が出てくる・・・かもしれない。
- 履歴書を書く時等に、西暦-元号の変換で悩んだ経験はないですか?
- そういう時、これがあれば一発。
- 履歴書を書かなければいけない人、必須アイテムとなるか。
- もう少し速く開発してれば、苦労しないで済んだのに(^_^;)。
-
- ・・・
-
- 最近、小手先の開発が多いので、ここは一発、技術的に人をうならせるようなものを
- 創りたい。そこで、次回予告。
-
- AIG-Softが自信を持ってお送りする
- 構想2年(マジ)、制作2カ月
- ASK、というより漢字変換の本質に迫る究極のアクセサリ!!
- その名は(企業秘密により削除じゃなくて未定 ^^;)
-
- ・・・ちゃんと出来ればいいのですけど・・・
-
- でもでも、再就職が決まったので当面大規模開発は出来ないかも。
- ということは、また小手先開発が続くかも(^_^;)。
-
- ・・・
-
- キーの配置などは私の趣味です。変更出来ません(^_^;)。
- (私は普段ENV3.ASKをちょっとだけ変えたものを使っています。)
- どうしてもしたい人は、ソースを直して下さい。
-
- ひょっとすると、まだどこかにバグが潜んでいるかも知れません。
- 何か見つけた人はご連絡を。
- でも、お約束だけど、何があっても「責任取って!」はなしね。
-
- 「フリーソフトは使う側の責任で。」
-
- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
- ┃ 作成環境 ┃
- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
-
- ASKDatesは次の環境で作成・動作チェックされました。(敬称略)
-
- X68030 (25MHz/12M-Memory/FPU)
- X68000 CompactXVI(16MHz/10M-Memory)
- DynaBook EZ486(25MHz,/10M-Memory) ... ソース・ドキュメントの編集一部だけ
-
- Human68K V3.02 SHARP/Hudson
- COMMAND.x v3.00 SHARP/Hudson
- ASK68K.SYS V3.02 SHARP/ACCESS Co.LTD.
- codeA.SYS V0.05 FDS/SHARP/ACCESS Co.LTD.
- SX-Window V3.10 SHARP/First Class Technology
-
- HIOCS-plus V16.11 SHARP/Y.Nakamura/立花えり子
- TwentyOne.sys v1.36c14+p2 Ext/GORRY/立花えり子
-
- HAS060 v3.09+75 Y.Nakamura/M.Kamada
- HLK evolution v3.01+9 SALT/立花えり子
-
- GCC based on 1.42 F.S.F/真理子
- XC-Lib v2.1 NewKit SHARP/Hudson
-
- WS V0.90 Fuchi
- SuperED v1.18 T.Nishikawa
-
- その他多くのソフトたち。
-
- 特に、ASKはV3.02で、codeAはV0.05でしか確認していません。
- ASKのV3.00,3.01では動作するかどうかは未確認です。
-
- 各ソフトの開発者に感謝致します。
-
- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
- ┃ 参考文献 ┃
- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
-
- XC V2.1 NewKit Cライブラリマニュアル2/プログラマーズマニュアル
-
- ぷにぐらま~ずまにゅある 第五版 第四刷,立花えり子
- やはりオンラインマニュアルはとっさの時に役立ちます。
-
- 年号の対応は、以前作った自作プログラムyear.xのソースを参考にしてますが、
- 発表してないので、誰も知らないことでしょう(そりゃそうだ)。
-
- ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
- ┃ 連絡先 ┃
- ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
-
- PowerStation PS0071
- 満開ネット MKSX0424
- E-Mail LeDA@osaka.email.ne.jp
-
- 上記ならよく連絡が付きますが、まれにしばらく通信出来なくなることがありますので、
- 気長にお待ち下さい。
-
- LeDA
-
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━